#include"ThreadPool.hpp"
#include"Task.hpp"
#include"Log.hpp"
#include<cstdlib>
#include<iostream>
using namespace bit;
int main()
{
    //只要是重载了operator()的类就可以传过来做我的模板参数：
    ThreadPool<AddTask> pool;

    //开启线程池：让线程池的状态从不活跃变成活跃：
    pool.Start();

    int cnt = 10;
    srand(time(nullptr));
    while(cnt)
    {
        //构建任务：
        int x = rand() % 10 + 1, y = rand() % 10 + 1;
        AddTask t(x, y);

        //生产任务：
        pool.Enqueue(t);

        t.debug();
        sleep(1);
        std::cout << "cnt->" << cnt-- << std::endl;
    }

    //关闭线程池：让线程池的状态从活跃变成不活跃：
    pool.Stop();
    //std::cout <<"主线程stop了线程池！" << std::endl;
    LOG(INFO, "主线程stop了线程池！");
    sleep(20);
    return 0;
}